home *** CD-ROM | disk | FTP | other *** search
/ Software USA 4 #10 / Software USA Volume 4.10.iso / mac / Educational / Prokaryote / READ me < prev   
Text File  |  1996-09-28  |  11KB  |  106 lines

  1. Prokaryote 2.1.1
  2. By Adam Wight, ©1996
  3. Try e-mailing adamw@holonet.net!
  4.  
  5. A Summary of What Prokaryote Is:
  6.     This program is meant to simulate evolution in a colony of cells that vaguely resemble real single-celled organisms. They have one sense, the ability to see the cell directly ahead of them, which can be occupied by either nothing, food, poison, or another bug. Their behavior is determined by a genetically inherited array of probabilities, and what their eye senses. They can reproduce either by asexual division, or by conjugation and genetic crossover. You can watch the bumbling, twirling ancestors give rise to ultra-efficient feeding machines in a dramatic illustration of Chuck D.'s theories. You'll observe many phenomena with close parallels in nature, especially once you bring poison and walls into the picture...
  7.     Prokaryote is shareware, and the recommeded fee is $10. Viva shareware!
  8.  
  9. System Requirements:
  10. •System 7.0 or later.
  11. •A 68020 or better CPU or any PowerPC. Prokaryote is fat, and runs native on both 68K and PPC machines.
  12. •A 640x480 pixel or larger color monitor STRONGLY recommended. Prokaryote will run on a 512x384 monochrome monitor fine, but will look terrible and may act oddly.
  13.  
  14. Features:
  15. •Full-color, blindingly fast display of the "petri dish."
  16. •Fully adjustable window size.
  17. •Up to 300 bugs can be simulated at a time. (Contact me to break this rule.)
  18. •A selection of painting tools that allow you to completely customize your bugs' environment.
  19. •Full file opening and saving ability. Simulations can be saved as ultra-tiny files that contain everything Prokaryote needs to know about the bugs and the environment, or alternatively in slightly larger format that contains an exact duplicate of the map you've drawn.
  20. •The ability to save the current simulation in text form, and summarize the evolution of the current bugs.
  21. •A built-in editor that allows the user to change any aspect of a particular bug, from its color to its energy, to its actual genetic material.
  22. •It's majorly fun to play- (ahem... to experiment) with!
  23.  
  24. How It Works:
  25.     Each organism's genotype is inherited from it's parent(s)' genotype, with a small amount of mutation. The important elements of an organism's genotype are as follows:
  26.     •Color- the only effect an organism's color currently has is how it's drawn on the screen.
  27.     •Mature Age- the age at which an organism can reproduce.
  28.     •Strong Energy- the minimum energy an organism must have to reproduce.
  29.     •Parent Lives?- if this gene is off, when an organism reproduces it will cease to exist, and two new organisms, each a mutated version of the parent, will be "born." If this gene is on, when an organism reproduces it will continue to live, and will only give birth to one offspring.
  30.     •Omnivorous?- if this gene is on, an organism will be capable of eating other organisms it runs across. This feature is a little flaky right now, though. Plus, in most situations it's rare that one organism even sees another, since the eye area is so small.
  31.     •The probablity matrix- this is a 6x5 matrix of integers, and is explained later.
  32.  
  33.     There are 6 possible directions an organism can be facing, each a multiple of 60°. When an organism is about to move, it first looks at the four map cells (the cells that the bug would occupy if it were to move ahead) directly in front of it. Depending on the contents of this space, the organism's probability genotype, and a random number, the organism will either move ahead one space, or turn 60,120,180,240, or 300°. If the bug decides to turn, it stays in the spot it's in.
  34.     The probability matrix is organized in the editor and in saved text files like this:
  35.  
  36.          F   R   HR  RV  HL  L 
  37. Empty:   x   x   x   x   x   x
  38. Food:    x   x   x   x   x   x
  39. Bug:     x   x   x   x   x   x
  40. Poison:  x   x   x   x   x   x
  41. Barrier: x   x   x   x   x   x
  42.  
  43. where each "x" stands for an integer. Internally, this matrix is converted to a 6x5 array of real numbers from 0 to 1 that represent the probability a bug will either move (F)orward, (R)ight, (H)ard (R)ight, (R)e(v)erse, (H)ard (L)eft, or (L)eft depending on what its "eye" sees.
  44.     For more information, contact me... Most of the other features should be fairly self-explanatory, but feel free to ask questions.
  45.     IMPORTANT: I wrote full on-line balloon help, which gives a brief explanation of (almost) every feature.
  46.     Each pixel of food provides a bug with enough energy to live 40 ticks (this is the default, it can be changed in the "Conditions" box,) and a single pixel of poison instantly kills a bug. To find the theoretical stable population of an environment (the number that the population will usually settle around), use this formula:
  47.  
  48.                  stable population=(food added per tick)*(food value)
  49.  
  50.     This is the population that can be constantly sustained by the amount of food available to the bugs. You'll probably notice that this works very well for populations with low birth rates, but when the birth rate increases (try the "Problem Breeders" file) the population moves beyond regular oscillation, and becomes chaotic. Also, you might've also noticed that the map size is nowhere in the formula, which you should keep in mind when you're creating big maps.
  51.     Oh... the graph window is a little cryptic right now... The graph is of the current bug population (the y-coordinate) vs. time (x), and it's drawn every 100 ticks (every 1000 ticks when running on a PPC). The top of the y-axis represents the highest that the population has ever gone, and the bottom represents a population of 0. The red number is the current population. It isn't too scientifically useful right now, it only tells you approximately how the population is behaving. See "Future Plans..."
  52.  
  53. Speed:
  54.     If it just isn't fast enough for you, here are some easy steps you can take to speed up Prokaryote:
  55.     -Leave "Hog CPU" on. The only time you won't want to hog the CPU is if you're running something else that you'd rather hog the CPU with...
  56.     -Close any background applications, especially text editing applications.
  57.     -Select "Never" under "Update."
  58.     -If you've done all of the above, in some situations, Prokaryote will run faster in the background (I still don't really know why... but it works).
  59.     -For you hard-core speed freaks, hide the "Info" window (this actually helps a LOT), turn After Dark off if you have it (or any screen saver that would take precious processor time,) and leave the room. Find a good book. Don't read too long, though. Usually the bugs fully adapt to a stable environment after a few minutes.
  60.     NOTE TO POWERMAC USERS: When you register, I'll send you a version of Prokaryote specifically pipelined for your processor, which can double (or even triple!) the simulation speed. If there isn't drool dribbling from the corners of your mouth yet, Prokaryote pipelined for a 9500/120 runs at over 4000 frames per second! (That's using all the speed hints outlined above, of course). The non-pipelined version can run at 2000 fps, for reference. (In place of a registration fee, I'd also accept a PowerMac 9500...)
  61.  
  62. Acknowledgements:
  63.     This program was originally inspired by a Scientific American article by A. K. Dudney (I think... my apologies to the author) published in May1989. I haven't been able to get my hands on a copy of that issue, though, so I'm not sure who the author really is... if someone out there has a copy, tell me!
  64.     Thanks to everyone who responded to the other programs I've released!
  65.  
  66. Liscense:
  67.     This program is shareware, and the recommended fee is $10 (or equivalent). You may distribute it freely, but commercial distribution requires my permission. Any distribution must include this file and the "Future Plans" file. Modified versions and special versions (for registered users) may NOT be distributed, freely or otherwise. Also, I take no responiblity for any damages that occur as a result of using this program. Whew!
  68.     There aren't legal strings requiring you to register, but consider the advantages:
  69.  
  70. • You won't have to feel incredibly guilty about taking advantage of the enormous amount of time and effort I've put into developing this program.
  71.  
  72. • You'll be automatically registered for all future releases of Prokaryote.
  73.  
  74. • Free technical and philosophical support.
  75.  
  76. • You'll be on the mailing list to receive free updates and any possible compilations of interesting results. See the "Future Plans" file to see where this may be leading...
  77.  
  78. • If you need a pipelined version for a specific PPC processor, or you need some custom change to be made, like a much higher maximum number of bugs, you got it... for free, too!
  79.  
  80. If you like this program, there are two options for registration. The first is to send $10 or whatever you think is appropriate to this address:
  81.  
  82.      Adam Wight
  83.      2716 Martin Luther King Jr. Way,
  84.      Berkeley, CA 94703-2110
  85.  
  86.     And the second is to donate at least $10 to a non-profit organization of your choice, and fax or mail a copy of the receipt to me.
  87.     If you include a SASE and a blank disk, I'll send you copies of the latest versions of some of my other programs. The more interesting programs I'll send include:
  88.  
  89.     •3d Gravity Thing: A 3d, multi-body gravitational simulation, VERY fast. You can also find this on the Net (it should be at info-mac and umich...). Since it has a number in the title, it might be called "three-d-gravity-thing" or something similar.
  90.     •A very modular random sentence generation program. Very cool. I currently working on making it generate crazy sentences in absolutely any language.
  91.     •An interesting 3d modeller and viewer. Not too useful yet, but lots of fun to play with. Loads and writes text files!
  92.     •A very quick-and dirty, but functional 3d surface grapher, including the source code (if you want it), which contains my excellent personal C routines for plotting 3d points onto a 2d camera screen, which can be rotated to point at the graph from any direction!
  93.     •A simulation of gas in a fully user-controllable piston.
  94.     •A fractal growth simulator, also based on a Scientific American  article that I (ahem...) can't remember... including the source code, if you want.
  95.  
  96.     Projects in some sort of progress:
  97.     •A flattener that takes 3d objects created with the above 3d editor and prints them to paper, which can then be folded and assembled to match the models on disk.
  98.     •A multiple pendulum simulator. Chaos is cool.
  99.     •Assorted weird stuf.
  100.  
  101. For questions, comments, etc., I can be contacted at adamw@holonet.net.
  102. Of course, I'm interested in what you have to say regardless of whether or not you decide to register!
  103.  
  104.  
  105.  
  106. Note: if there was fine print, this is where it would go... So I decided to write some fine print here.